package com.pro.mapper;

import com.pro.entry.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author 谭金诚
 * @Description TODO
 * @Date 2022/4/15 11:25
 * @Version 1.0
 */
public interface JsCourseMapper {

    //查看首页课程列表
    List<JsCourse> getCourses(@Param("currentPage") Integer currentPage, @Param("pageSize") Integer pageSize,
                              @Param("courseStatus") Integer courseStatus, @Param("courseCstatus") Integer courseCstatus);

    //查看课程详情
    JsCourse getCourseDetails(JsCourse course);

    //查看课程目录
    List<JsCourse> getCourseMenu(Integer userId);

    //获取课程评论
    List<JsComment> getCourseComments(@Param("courseId")Integer courseId, @Param("type")Integer type);

    //获取课程评论总数
    Integer getCourseCommentsNums(@Param("courseId")Integer courseId, @Param("type")Integer type);

    //查找有哪些评论被点赞
    List<Integer> getPraisedComms();

    //添加用户点赞评论记录
    boolean addPraisedCommsLog(JsCommentLike commentLike);

    //删除用户点赞评论记录
    boolean delPraisedCommsLog(JsCommentLike commentLike);

    //查看当前用户对当前评论有没有点赞记录
    Integer getPraisedCommsLog(JsCommentLike commentLike);

    //更新课程点赞
    boolean updateFabulous(@Param("type")String type, @Param("commentId")Integer commentId);

    //添加课程评论
    boolean addCourseComment(JsComment comment);

    //查看当前用户对当前课程是否有点赞记录
    JsFabulous getPraiseCourse(JsFabulous fabulous);

    //查看当前用户对当前课程是否有收藏记录
    JsUserCollection getCollectionCourse(JsUserCollection userCollection);

    //点赞课程
    boolean addPraiseCourse(JsFabulous fabulous);

    //取消课程点赞
    boolean delPraiseCourse(JsFabulous fabulous);

    //增加/减少课程点赞量
    boolean updataPraiseCourse(@Param("typeNum")String typeNum, @Param("type")String type, @Param("courseId")Integer courseId);

    //收藏课程
    boolean addCollectionCourse(JsUserCollection userCollection);

    //取消收藏课程
    boolean delCollectionCourse(JsUserCollection userCollection);

    //增加/减少课程收藏量
    boolean updataCollectionCourse(JsUserCollection userCollection);

    //获取热度搜索关键字
    List<JsSearchKeywords> getHotKeywords(Integer num);
    

}
